엑셀 TEXTJOIN 함수는 선택한 범위 안의 텍스트을 구분기호로 나눠 하나의 문장으로 결합하는 함수입니다.
=TEXTJOIN(구분기호, [빈칸무시], 범위1, [범위2], ...)
- 쉼표(,), 공백() 등 원하는 구분기호를 지정할 수 있습니다.
- 배열 안에 여러 개의 구분기호를 입력하면, 각 구분기호를 번갈아가며 문자를 결합할 수 있습니다.
=TEXTJOIN({"+","-"},,{"사과","배","귤","포도","복숭아"}
="사과+배-귤+포도-복숭아"
// "+"와 "-"를 번갈아가며 문자를 결합합니다.
- TRUE : [기본값] 빈 셀을 무시하고 결합합니다.
- FALSE : 빈 셀을 포함하여 결합합니다.
- 필요에 따라 최대 252개의 범위 또는 텍스트를 추가로 입력할 수 있습니다.
엑셀 TEXTJOIN 함수는 선택한 범위의 문자열을 구분기호로 나눠 하나의 문장으로 결합하는 함수입니다. 이 함수는 엑셀 2019 이후 버전에서 제공되며, CONCATENATE 함수나 CONCAT 함수보다 더 다양한 기능을 제공합니다. 특히, 구분기호를 지정할 수 있고 빈 셀을 무시하는 옵션이 있어 실무에서 편리하게 사용할 수 있습니다.
=TEXTJOIN(",",,{"사과","배","귤"," ","복숭아"}) / / 빈칸을 무시하고 "사과, 배, 귤, 복숭아"의 한 문장으로 결합합니다. =TEXTJOIN(",",FALSE,{"사과","배","귤"," ","복숭아"}) / / 빈칸을 포함하여 "사과,배,귤, ,복숭아"의 한 문장으로 결합합니다.
만약 엑셀 2016 이전 버전 사용자일 경우, VBA 매크로를 활용한 TEXTJOIN 함수 추가기능을 사용할 수 있습니다. 2016 이전 버전용 TEXTJOIN 함수 추가기능은 아래 링크를 참고하세요!😊
/ / A2:A6 : {"김아름","최민","","박하늘","전이수","","정아랑"} =TEXTJOIN(", ", TRUE, A2:A6) ="김아름, 최민, 박하늘, 전이수, 정아랑" / / 범위의 이름을 쉼표와 공백으로 구분하여 한 문장으로 결합합니다. 빈 셀은 무시합니다.
B2(시/도), C2(시/군/구), D2(동/읍/면), E2(상세주소)가 있을 경우, 다음과 같이 TEXTJOIN 함수를 사용하여 완성된 주소를 조합할 수 있습니다.
=TEXTJOIN(" ",TRUE,B2:E2) / / B2:E2에 입력된 주소 정보를 하나의 완성된 주소로 결합합니다.
CHAR 함수를 활용하면 각 범위의 텍스트를 줄바꿈으로 결합할 수 있습니다.
=CHAR(10)/ / 줄바꿈을 반환합니다.
만약 줄바꿈이 표시되지 않을 경우, [홈] 탭에서 '줄바꿈 표시' 옵션을 활성화합니다.
=TEXTJOIN(CHAR(10), TRUE, A2:A10) / / A2:A10 의 문장을 줄바꿈으로 결합합니다.
TEXTJOIN 함수로 결합된 숫자는 텍스트 형식으로 반환되므로 추가적인 계산이 불가능합니다.
예를 들어 =TEXTJOIN("", TRUE, 1, 2, 3)은 123이라는 텍스트를 반환하며, 이 결과를 계산에 활용하려면 뒤에 "*1" 연산을 추가하여 숫자로 변환하거나 N 함수로 묶어서 사용합니다.
엑셀에서 셀 안에 입력 가능한 문자열의 최대 길이는 32,767자입니다. 따라서, 결과 문자열의 길이가 32,767자를 초과하면 #VALUE! 오류가 반환됩니다.
TEXTJOIN 함수는 엑셀 2019 이후 또는 M365 버전에서 제공됩니다. 이전 버전에서는 VBA 매크로로 작성된 TEXTJOIN 함수를 사용할 수 있습니다.
=textjoin(" ",if(@1:@10=@,@1:@10,""))
으로 했을때
출력된 값이 10 10 인데 이게 두개가 아니라 하나만 나오도록 보고싶습니다.
[출처] [엑셀_실무] (TextJoin) 조건에 맞는 셀들을 구분자 기준으로 합치기|작성자 참이슬
중복값을 제거하고 고유값만 합치는 방법은 아래 공식을 사용하시면 해결가능합니다.
감사합니다.
오빠두엑셀님 알려주신 함수 잘 사용하겠습니다. 그런데 오류가 있는 것 같아 코멘트 남깁니다.
편안한 주말 되세요~
혹시 이거 반대 기능은 없나요?
셀안의 , 로 구분된 단어들을 A1,2,3,4,5,6 세로로 나열하고 싶습니다..
홈페이지의 TEXTSPLIT 함수 추가기능을 사용해보시길 바랍니다.
https://www.oppadu.com/%EC%97%91%EC%85%80-%ED%8A%B9%EC%A0%95-%EC%A1%B0%EA%B1%B4-%EB%A7%8C%EC%A1%B1%ED%95%98%EB%8A%94-%ED%85%8D%EC%8A%A4%ED%8A%B8-%ED%95%A9%EC%B9%98%EA%B8%B0/
추가기능 파일의 경로를 항상 동일하게 설정해주면 됩니다.
예를 들어 A 컴퓨터의 추가기능 경로가 C:/추가기능/
B컴퓨터의 경로가 C:/엑셀추가기능/ 으로 다를 경우 말씀하신 문제가 발생하며, 그럴 경우 경로를 하나로 통일하시면 문제가 해결됩니다.
감사합니다.
글자색도 함께 가져오려면 VBA로 사용자 함수를 직접 만들어서 사용해야만 가능합니다.
xFILTER로 불러온 열의 내용을 textjoin으로 합쳐서 한칸에 나타내고자하여
=TEXTJOIN(",",TRUE,xFILTER('이름'!W2:W7621, '이름'!H2:H7621=H2))
를 입력하고 엔터를 쳤더니 #VALUE! 값이 나오는데 해결방법이 있을까요?
xFILTER 함수의 배열반환여부를 True로 설정 후 사용해보시겠어요?
배열 반환여부를 True로 하면 잘 동작할겁니다. 한번 확인해보세요.
감사합니다.
Textjoin 함수랑 if and 함수 써서 값을 불려오려고 하는데요.
=TEXTJOIN(CHAR(10),TRUE,IF(AND(tbl재택신청[날짜]=C$4,tbl재택신청[부서]=$B5),tbl재택신청[이름],""))
재택신청자들 값을 부서별로 나눠서 받으려고 하는데 날짜 조건은 문제가 없는데 부서 조건에서 false가 나와서요 ㅠ
ifand 함수를 잘못 작성한 것일까요??
AND 함수는 배열이 아닌 단일 결과를 반환합니다.
If함수를 다음과 같이 수정해보세요.
바로 해결되실겁니다. 감사합니다.